package com.szholly.data.coderule.rules;

import com.szholly.data.general.*;

/// <summary>
/// 定义编码规则接口
/// </summary>
public interface ICodeRule {
	// / <summary>
	// / 获取代码规则值
	// / </summary>
	// / <param name="table">具体表</param>
	// / <param name="entity">要编码的实体</param>
	// / <param name="para">规则生成参数</param>
	// / <param name="refEntity">参考对象</param>
	// / <param name="curCodeRule">当前编码值</param>
	// / <returns></returns>
	String GetCodeRule(ITable table, RowBase entity, String para,
                       RowBase refEntity, String curCodeRule, String ruleInfoID);

	// / <summary>
	// / 获取当前是否需要编码规则
	// / </summary>
	// / <param name="table">具体表</param>
	// / <param name="entity">要编码的实体</param>
	// / <param name="para">规则生成参数</param>
	// / <param name="refEntity">参考对象</param>
	// / <param name="fields">字段名集合</param>
	// / <returns></returns>
	Boolean NeedCodeRule(ITable table, RowBase entity, String para,
                         RowBase refEntity, String fields);

	// / <summary>
	// / 排序
	// / </summary>
	// / <param name="table">具体表</param>
	// / <param name="entity">要编码的实体</param>
	// / <param name="fieldNmae">排序字段</param>
	// / <param name="strWhere">排序条件</param>
	// / <param name="defulatValue">默认值</param>
	// / <returns></returns>
	String Sort(ITable table, RowBase entity, String fieldName,
                String strWhere, long defaultValue, String ruleInfoID);
}
